A typical computer system includes at least a microprocessor and some form of memory. The microprocessor has, among other components, arithmetic, logic, and control circuitry that interpret and execute instructions necessary for the operation and use of the computer system.
At the center of modern computer systems are very large scale integrated circuits, often including millions of logic circuits within a very small area. The design of these integrated circuits is a difficult and time-consuming task. As a result, circuit simulations, i.e., preliminary circuit models used to measure chip performance, have proven to be valuable and often necessary tools for reducing the design time required to synthesize integrated circuits. Further, circuit simulations may be used to improve circuit design and guarantee functional correctness of the circuit. Thus, the development of accurate circuit simulation techniques is essential for a designer to keep pace with the ever-increasing complexity of an integrated circuit.
FIG. 1 shows a circuit simulation process used by a typical circuit simulation tool, e.g., a computer system. In FIG. 1, the circuit simulation process is broken down into three steps: system design analysis (12), logic design analysis (14), and circuit design analysis (16). First, a design specification (10), i.e., a system overview of an integrated circuit design, is used to perform the system design analysis (12) of the integrated circuit (IC). The system design analysis (12) breaks the design specification (10) into subsystems and specifies the characteristics of each subsystem. For example, a system design analysis may specify the number and types of memory devices, arithmetic devices, and input/output devices as well as the interconnection and control of these subsystems.
Next, the logic design analysis (14) is used to produce a more detailed description of the IC's subsystems. Specifically, the logic design analysis (14) determines which types of elementary logic components, e.g., logic gates, flip-flops, etc., are used to construct the subsystems as well as how these components are interconnected. For example, a logic design analysis may specify the interconnection of logic gates and flip-flops that are used by a particular arithmetic unit to perform binary addition.
After the logic design analysis (14), the circuit design analysis (16) is used to generate a circuit schematic (18) of the IC's logic components. The circuit design analysis (16) determines the types, sizes, and interconnections of the logic circuits, e.g., resistors, diodes, transistors, etc., used to form the logic components for each subsystem. For example, a circuit schematic generated by a circuit design analysis may include the specific configuration of resistors and transistors used to form a flip-flop used in particular input/output device.
In many cases, the quality of a circuit simulation tool is measured by its ability to meet and/or exceed predetermined design performance goals. For example, circuit simulation tools are often used to minimize the amount of power dissipated by on-chip logic components. For small and/or portable electronic devices, high power dissipation may impede a designer's ability to design an adequate and/or cost-effective cooling system for a device. In addition, high power dissipation by on-chip logic components typically increases the amount of power consumed by an electronic device.
One manner in which designers optimize the power dissipation of a particular IC is through effective design of the IC's power grid, which is used to provide supply voltage and ground to the logic components of the IC's subsystems. Generally, a power grid is designed as a stack of wire meshes attached to a surface of the IC, wherein each wire mesh is attached to a voltage supply or to ground. Further, at various locations on the IC, each wire mesh is wired to one more logic components so that, ideally, each location on the IC receives sufficient supply voltage to operate correctly.
When logic gates on an integrated circuit transition, the logic gates draw current from or sink current to the power grid. Because the flow of current through the power grid typically causes supply voltage variations, there is a propensity for the behavior of one transitioning logic gate to affect the behavior of another logic gate on the integrated circuit. For example, when a transitioning logic gate sinks/draws a large amount of current to/from the power grid, other logic gates in close proximity to the transitioning logic gate may see a sudden surge/drop in supply voltage. Surges/drops in supply voltage may corrupt the signals outputted by these other logic gates by causing the signals to transition too early or too late, i.e., altering the timing delays of the signals. Consequently, these timing errors may propagate to other parts of the processor, thereby causing timing failures and/or circuit malfunction. Further, sudden surges/drops in supply voltage often increase the amount of power that is dissipated by the IC. For example, voltage surges may introduce excess power into the IC.
Typically, supply voltage variation in the power grid is minimized during the logic design analysis (14) and/or the circuit design analysis (16) of the circuit simulation process. FIG. 2 shows a circuit simulation technique that is used to minimize supply voltage variation during the design of an IC's power grid. First, a voltage drop budget, i.e., a margin of error for supply voltage variation, is set for the integrated circuit (step 20). The voltage drop budget, which is typically set to the worst-case voltage drop seen on the IC, is used to ensure that the IC's supply voltage is high enough for every logic gate on the IC to continuously receive at least the correct supply voltage. For example, if an IC that expects to see a supply voltage of 5 volts is found to have a worst-case voltage drop of 1 V at the center the IC, then it is the designer's responsibility to redesign the power grid such that the IC continuously receives at least 6 volts of supply voltage. Thus, although the outer edges of the IC may receive more than 5 volts of supply voltage, the center of the IC will receive at least 5 volts of supply voltage.
Referring to FIG. 2, after the IC has been assigned a voltage drop budget, the power grid is designed to meet the voltage drop budget (step 22). Typically, this is accomplished by altering the width and/or length of certain wires in the power grid and/or by altering the number and/or locations of wires connecting the power grid to the IC's logic components. Next, a timing analysis is performed on the IC using the voltage drop budget (step 24). During the timing analysis, the IC's logic components are tested individually and collectively to ensure that each logic component and/or each logic path formed by a set of logic components (1) receives at least the correct supply voltage and (2) meets a set of predefined timing requirements. Any logic components that do not meet the IC's supply voltage requirement and/or predefined timing requirements are redesigned (step 26), i.e., resized or replaced with functionally equivalent logic components that adhere to the design specification.
Note that, although the process shown in FIG. 2 does significantly reduce power dissipation in most IC designs, some of the redesigned logic components may be considerably over-sized to meet the predefined timing requirements. Consequently, this can lead to over-design of logic paths that are not necessarily critical to the timing of the circuit. Thus, during the timing analysis, excessive design effort and time may be spent in the redesign of non-critical logic paths.